package cn.iocoder.yudao.module.member.controller.admin.job.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import javax.validation.constraints.NotNull;

@Schema(description = "管理后台 - 职位 Response VO")
@Data
@ExcelIgnoreUnannotated
public class JobRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19481")
    @ExcelProperty("主键id")
    private Long id;
    @Schema(description = "复制链接", requiredMode = Schema.RequiredMode.REQUIRED)
    private String url;
    @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("职位名称")
    private String jobName;

    @Schema(description = "公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15070")
    @ExcelProperty("公司ID")
    private Long companyId;


    @Schema(description = "专业ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4913")
    private Set<Long> majorId = Collections.emptySet(); // 兜底


    @Schema(description = "专业名称", example = "李四")
    @ExcelProperty("专业名称")
    private String majorName;

    @Schema(description = "届别要求")
    @ExcelProperty("届别要求")
    private String classRequirements;

    @Schema(description = "最低学历")
    @ExcelProperty("最低学历")
    private String minEducation;

    @Schema(description = "省ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29745")
    @ExcelProperty("省ID")
    private Long provinceId;

    @Schema(description = "省名称", example = "李四")
    @ExcelProperty("省名称")
    private String provinceName;

    @Schema(description = "市id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20339")
    @ExcelProperty("市id")
    private Long cityId;

    @Schema(description = "市名称", example = "张三")
    @ExcelProperty("市名称")
    private String cityName;

    @Schema(description = "区ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30620")
    @ExcelProperty("区ID")
    private Long districtId;

    @Schema(description = "区名称", example = "芋艿")
    @ExcelProperty("区名称")
    private String districtName;

    @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("详细地址")
    private String address;

    @Schema(description = "职位描述")
    @ExcelProperty("职位描述")
    private String jobDetail;

    @Schema(description = "是否上架 0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否上架 0 否 1 是")
    private Boolean isShelved;

    @Schema(description = "上架时间")
    @ExcelProperty("上架时间")
    private LocalDateTime shelvedTime;

    @Schema(description = "是否推荐 0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否推荐 0 否 1 是")
    private Boolean isRecommend;

    @Schema(description = "推荐时间")
    @ExcelProperty("推荐时间")
    private LocalDateTime recommendTime;

    @Schema(description = "浏览人数")
    @ExcelProperty("浏览人数")
    private Integer visitNum;

    @Schema(description = "投递人数")
    @ExcelProperty("投递人数")
    private Integer sendNum;

    @Schema(description = "招聘开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("招聘开始时间")
    private LocalDateTime hireBeginTime;

    @Schema(description = "招聘结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("招聘结束时间")
    private LocalDateTime hireEndTime;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 招聘类型
     */
    private String jobType;

}